package com.ustcinfo.study.scala.r4.wangqiangqiang

import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  def main(args: Array[String]): Unit = {
    //sparkconf用来设置spark的配置属性
    val sparkConf=new SparkConf().setMaster("local").setAppName("scala_test")
    //获得SparkContext对象
    val sc = new SparkContext(sparkConf)
    //将文件装进rdd中
    val txtRdd=sc.textFile("src/main/resources/sampleData/programming");
    //过滤算子,过滤掉长度为0的语句
    txtRdd.filter(x => x.trim().length>0)
      //map算子,对每句已空格拆分得到词语数组
      .map(x =>x.split(" "))
      //flatMap算子，使数组竖向排列
      .flatMap(x => x).map(x => (x,1))
      //对相同key的value值相加
      .reduceByKey(_+_)
      //利用Tupple数据特点，将key,value转换位置
      .map(x =>(x._2,x._1))
      //根据key降序排序，取前10条数据
      .sortByKey(false).take(10)
      //输出结果
      .foreach(println)

  }
}
